Despite advances in computing and programming, for a particular software application, managing and storing data generally fall into two somewhat mutually exclusive paradigms. In one paradigm, data is managed at some level of granularity within a single file. For example, information is placed within cells of a spreadsheet and the spreadsheet is stored as a single file on a local machine. In another example, words and paragraphs are managed and stored within a single word processing document on a local machine or at least on a single machine even if stored at some location in a network.
In a second general paradigm, data is managed and stored across a network. For example, a file system allows a user or program to manage and store files, either singly or in groups, in one or more locations or devices in the network. In another example, a program gathers and stores data in a real time database which may be stored on a single machine or may be spread over multiple systems or machines interconnected by a network. In the second paradigm, often one application communicates with another application (e.g. database application) where the other application then manages and persists the data.
In both data management and data storing paradigms, backing up of data can be done by another unrelated application or function by an application with the sole and specific task of backing up data. For example, in the first paradigm, files are copied to another location either to a location on the same physical machine or to another machine or device. In the second paradigm, a system administrator performs a backup. In such a situation, such as in the backup of a database, the primary system or application can be shutdown or brought offline when the task of backing up is performed. In other situations, the primary system or application experiences an unusually high load as a backup function is performed, which sometimes causes interference with normal operation of the system or the application, or both the system and the application. In both paradigms, large portions of the data being backed up have not been changed since a previous backup which results in a risk that data and files may be stored multiple times across multiple backups and transferred multiple times.
Further, user data accumulates over time. For example, users tend to keep email messages and add to their collection of digital photographs. They hang onto their music files, video files, bookmarks and other various forms of data. Software applications tend to increasingly become sluggish as they become overwhelmed by these increasing collections of data. In the workplace, users hit or exceed their respective quotas of disk space or file size limits for certain applications. Archiving, auto-archiving, compression and automated garbage collection only go so far in managing such data. Application and machine performance sometimes degrades to such a degree that some users wipe their machines clean only to end up back at the same place in a few months.